package com.canaan.common.encrypt;

import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.json.JSONUtil;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Calendar;

/**
 * 响应结果
 *
 * @author du.tang
 * @Version 1.0.0
 */
@Setter
@Getter
public class ResultDTO<T> implements Serializable {

    /**
     * 请求号
     */
    private String requestNo;

    /**
     * 响应号
     */
    private String responseNo;

    /**
     * 时间戳
     */
    private String timeStamp;

    /**
     * 状态(success/fail)
     */
    private String status;

    /**
     * 数据
     */
    private T data;

    {
        Calendar calendar = Calendar.getInstance();
        this.timeStamp = DateUtil.format(calendar.getTime(),DatePattern.NORM_DATETIME_MS_PATTERN);
        this.responseNo = IdUtil.fastSimpleUUID();
    }


    @Override
    public String toString() {
        return JSONUtil.toJsonStr(this);
    }
}
